package net.huashitong.ssydt.provider.article.service;


import net.huashitong.ssydt.PaginationResult;
import net.huashitong.ssydt.article.entity.SsArticleType;
import net.huashitong.ssydt.article.entity.vo.ArticleTypeInVO;
import net.huashitong.ssydt.article.entity.vo.ArticleTypeQueryInVO;

import java.util.List;

/**
 * @author <a href="mailto:yhy23456@163.com">huiyang.yu</a>
 * @since 2017.09.14
 */
public interface SsArticleTypeService {

    int deleteByPrimaryKey(Long id);

    int insert(SsArticleType record);

    int insertSelective(SsArticleType record);

    SsArticleType selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SsArticleType record);

    int updateByPrimaryKey(SsArticleType record);

	/**
	 * 加载文章类型对象，无则抛出异常
	 *
	 * @param id 类型ID
	 * @return SsArticleType 文章类型
	 */
	SsArticleType getById(Long id);

	/**
	 * 分页查询文章类型列表
	 *
	 * @param articleTypeQueryInVO 分页查询条件
	 * @return PaginationResult 分页查询结果
	 */
	PaginationResult<SsArticleType> paginationQuery(ArticleTypeQueryInVO articleTypeQueryInVO);

	/**
	 * 加载可见的文章类型列表
	 *
	 * @return List 文章类型列表
	 */
	List<SsArticleType> listValidArticleTypes();

	/**
	 * 新增文章类型
	 *
	 * @param articleTypeInVO 文章类型信息
	 */
	void insert(ArticleTypeInVO articleTypeInVO);

	/**
	 * 修改文章类型
	 *
	 * @param articleTypeInVO 文章类型信息
	 */
	void update(ArticleTypeInVO articleTypeInVO);

}
